Definition Was ist Apache ORC?

Von Dipl.-Ing. (FH) Stefan Luber 3 min Lesedauer

Anbieter zum Thema

Apache ORC ist ein ursprünglich für Apache Hive und Hadoop entwickeltes Dateiformat. Es ist selbstbeschreibend, typerkennend und spaltenbasiert. Mithilfe des Dateiformats lassen sich große Datenmengen mit hoher Performance lesen, schreiben, komprimieren und verarbeiten. Typischer Einsatzbereich des Optimized-Row-Columnar-Dateiformats ist das Big-Data-Umfeld. Es verhält sich wesentlich effizienter als Dateiformate wie CSV oder JSON und ist unter Apache License 2.0 frei verfügbar.

(Bild:  © aga7ta - stock.adobe.com)
(Bild: © aga7ta - stock.adobe.com)

ORC im Begriff „Apache ORC“ steht für Optimized Row Columnar. Es handelt sich um ein spaltenbasiertes Dateiformat. Entwickelt wurde es im Jahr 2013 ursprünglich für Apache Hive und Hadoop. Es sollte Apache Hive beschleunigen und für eine effizientere Datenspeicherung mit Apache Hadoop sorgen. Die Entwickler konzentrierten sich darauf, Dateigrößen zu reduzieren und eine Hochgeschwindigkeitsverarbeitung der Daten zu ermöglichen.

Apache ORC verhält sich wesentlich effizienter als Dateiformate wie CSV oder JSON. Auf der Website von Apache ORC (orc.apache.org) wird das Dateiformat als „the smallest, fastest columnar storage for Hadoop workloads“ bezeichnet. Apache ORC ist ein spaltenbasiertes, typerkennendes und selbstbeschreibendes Dateiformat. Das Spaltenformat von ORC erlaubt das Lesen, Dekomprimieren und Verarbeiten der nur gerade für die aktuelle Abfrage benötigten Daten. Eine große Zahl an Datentypen wird unterstützt.

Typischer Einsatzbereich von Apache ORC ist das Big-Data-Umfeld. Neben Apache Hadoop und Apache Hive können zahlreiche weitere Datenverarbeitungs-Frameworks wie Apache Flink oder Apache Spark das Dateiformat nutzen. Apache ORC steht unter der Open-Source-Lizenz Apache License 2.0. Das aktuelle Release 1.9.1 erschien im August 2023 und enthält Java- und C++-Reader und -Writer sowie Tools für die Arbeit mit ORC-Dateien. Apache ORC hat sich etabliert und wird von zahlreichen Unternehmen weltweit verwendet. Zu den Nutzern gehören zum Beispiel Meta und Yahoo. Meta nutzt ORC, um viele Petabyte an Daten im Data Warehouse zu speichern.

Merkmale und Eigenschaften

Der Fokus bei der Entwicklung von Apache ORC lag auf der Hochgeschwindigkeitsverarbeitung großer Datenmengen. Das Dateiformat ist für große Streaming-Abfragen optimiert und findet dank dem spaltenbasierten Format die benötigten Daten schnell. Der Reader muss nur die Daten, die gerade benötigt werden, lesen, dekomprimieren und verarbeiten.

ORC-Dateien sind selbstbeschreibend und unabhängig von externen Metadaten. Sämtliche Typ- und Encoding-Informationen für die in der Datei gespeicherten Objekte und deren Interpretation sind innerhalb der Datei vorhanden. Es wird eine große Zahl an Datentypen unterstützt, darunter auch komplexere Typen wie Structs, Lists, Maps und Unions.

Eine ORC-Datei enthält Gruppen von Zeilendaten (Row Data), die als Stripes bezeichnet werden. Ein Stripe besteht aus Index Data, Row Data und Stripe Footer. Jeder Stripe ist zudem in eine Reihe von Datenblöcken aufgeteilt, in denen sich die Daten für bestimmte Spalten befinden. Im Datei-Footer sind Hilfsinformationen wie eine Liste der Stripes in der Datei, die Zahl der Zeilen pro Stripe und die Typen der Daten jeder Spalte und weitere Informationen abgelegt. Insgesamt stellt eine ORC-Datei drei Ebenen von Indizes zur Verfügung. Neben dem Stripe Level Index, gibt es einen File Level Index und einen Row Level Index. Diese Indices werden vom Reader bei der Abfrage von Daten verwendet.

Ein weiteres Merkmal von Apache ORC ist, dass das Dateiformat das ACID-Prinzip unterstützt und die Atomarität, Konsistenz, Abgrenzung und Dauerhaftigkeit von Transaktionen sicherstellen kann.

Vorteile von Apache ORC

Das spaltenbasierte Dateiformat Apache ORC bietet zahlreiche Vorteile. Es ist wesentlich performanter als zeilenbasierte Formate. Große Datenmengen lassen sich mit Apache ORC schneller lesen und verarbeiten. Der Reader muss nur die Daten lesen, dekomprimieren und verarbeiten, die für die aktuelle Abfrage benötigt werden. Unnötige Daten werden ausgefiltert und belasten den Arbeitsspeicher nicht. Ein weiterer Vorteil ist der gute Support für die Datenkomprimierung. Es lassen sich Algorithmen wie Snappy, zlib oder gzip zur Komprimierung einsetzen. Sie reduzieren den Speicherplatzbedarf. Dadurch entstehen weniger Kosten für das Speichern großer Datenmengen. Weitere Vorteile des Dateiformats Apache ORC sind:

  • speziell für das Hadoop-Ökosystem und Hadoop-Workloads entwickelt
  • für Big-Data-Anwendungen geeignet
  • ermöglicht die effiziente Verarbeitung und Speicherung vieler Petabyte an Daten in Data Warehouses
  • für verschiedene Arten von Daten einsetzbar
  • flexible Datenmodulierungsmöglichkeiten
  • unter Open-Source-Lizenz frei verfügbar
  • auch Java- und C++-Reader und -Writer sowie Tools für die Arbeit mit ORC-Dateien frei verfügbar
  • Dateiformat wird kontinuierlich weiterentwickelt
  • weltweit von zahlreichen Unternehmen produktiv eingesetzt
  • große Zahl unterstützter Datentypen, inklusive komplexer Typen wie Structs, Lists, Maps und Unions

(ID:49788947)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung